"""
2.家具类(HouseItem) 有 名字 和 占地面积属性，其中

席梦思(bed) 占地 4 平米
衣柜(chest) 占地 2 平米
餐桌(table) 占地 1.5 平米
房子类(House) 有 户型、总面积 、剩余面积 和 家具名称列表 属性

新房子没有任何的家具
将 家具的名称 追加到 家具名称列表 中
判断 家具的面积 是否 超过剩余面积，如果超过，提示不能添加这件家具
a.将以上三件 家具对象 添加 到 房子对象 中

b.打印房子时，要求输出：户型、总面积、剩余面积、家具名称列表 使用面向对象思想，编码完成上述功能。
"""


class HouseItem():
    def __init__(self,name,area):
        self.name = name
        self.area = area

    def __repr__(self):
        return f"家具:{self.name},占地{self.area}平米"

class House():
    def __init__(self,total_area):
        self.total_area = total_area
        if self.total_area < 60:
            self.name = "一室一厅"
        elif 60 <= self.total_area < 80:
            self.name = "两室一厅"
        elif 80 <= self.total_area < 120:
            self.name = "三室两厅"
        else:
            self.name = "别墅"
        self.houseitem_area = 0
        self.houseitem_list = []
        self.remaining_area = total_area - self.houseitem_area

    def __repr__(self):
        return f"户型:{self.name},总面积{self.total_area}平米,剩余面积{self.remaining_area}平米,家具名称列表{self.houseitem_list}"

    def add_houseitem(self,houseitem):

        if houseitem.area < self.remaining_area:
            self.houseitem_list.append(houseitem.name)
            self.remaining_area -= houseitem.area
        else:
            print(f"剩余面积还有{self.remaining_area}无法添加")

house1 = House(7)
bed = HouseItem("席梦思",4)
chest = HouseItem("衣柜",2)
table = HouseItem("餐桌",1.5)
house1.add_houseitem(chest)
house1.add_houseitem(table)
house1.add_houseitem(bed)
print(house1)
